// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mostbet Promo Kodu: Ətraflı Məlumat Online Kazino Oynamaq Üçün – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mostbet Promo Kodu: Ətraflı Məlumat Online Kazino Oynamaq Üçün

Mostbet Promo Kodu: Ətraflı Məlumat Online Kazino Oynamaq Üçün

Mostbet Promo Kodu: İmkanları Nədir?

Mostbet Promo Kodu İmkanları Nədir? Bu kod şərh edilməyən faydalar sunmayı təmin edir: 1 Bonus çəkidir, müştəriyyimizlər üçün ödənişlər üçün qiymətə düşməyə imkan verir. 2 Qiymətlidir, daha çox oyun oynaya bilmək üçün. 3 Mostbet Promo Kodu işləyən müştəriyyə bir səhv yalnışını təkrar etmə imkanı verir. 4 Bu kodlar bizim müştəriyimizlə əlaqəniz olan xidmətlər üçün daha çox fayda sağlar. 5 Mostbet Promo Kodu işləyən müştəriyyə daha çox xidmət verilir. 6 Bu kodlar bizim müştəriyimizlə qiymətli bir şəxsiyyət vəsaqı verir. 7 Mostbet Promo Kodu işləyən müştəriyyə daha çox baxışlıq edilir.

Mostbet Promo Kodu: Ətraflı Məlumat Online Kazino Oynamaq Üçün

Online Kazino Oynamaq Üçün Mostbet Promo Kodu

Mostbet Promo Kodu ile online kazino mostbet oynamaq üçün Azerbaycanda mümkün. Bu kod saytdan istifadə edəcəyiniz zaman artan bonuslar edinirsiniz. Mostbet, güclü ixtisaslıq əsasına dayanan bir platformdur. Ətraflı məlumat üçün Mostbet resursuna baxın. İstifadəçilər, şəxsi kabinetindən kodun kullanılmasını unutma! Online kazino oynamaq üçün Mostbet Promo Kodu, sizin için ən uygun seçimdir. Bu kodu istifadə edərkən, sizin üçün çox keyfəli bir oyun və bonuslar təklif edilir.

Nasıl Mostbet Promo Kodunu Alırıq?

Mostbet Promo Kodunu almaq üçün şəkillər arasından birini seçin:
1. Mostbet web saytına qeydiyyatdan keçirin və üçüncü keçirilmiş müştəri olaraq idarə etmək üçün sizə kod verilir.
2. Referans sistemindən dostunuzla paylaşaraq ona qeydiyyatdan keçirirse sizə heç bir şart verməz və kod verilir.
3. Sosial şəbəklərdə aktiv olaraq idarə edən xidmət sahəsindən faydalanaraq kodu ala bilərsiniz.
4. Mostbet mobile uygulamasını indirib qeydiyyatdan keçirərsəniz sizə promo kodu göndərilir.
5. İndividual çoxluşlu təşkilatlar və fərdi istifadəçilər sizin üçün özəllikli kampaniyalar düzgün bir şəkildə təşkil edir və sizə promo kodu verirler.
6. E-poçt və SMS ile sizin üçün periyodik olaraq xəbərlər göndərilir və onların içində promo kodlar barındırılır.
7. Mostbet kompaniyasının rəsmi saytından faydalanaraq, sizə dəstək mərkəzindən promo kodu alma imkanı verilir.

Mostbet Promo Kodu: Qeydli İşlər

Mostbet Promo Kodu: Qeydli İşlər ilə müştərilərimiz üçün özündə xidmət veririk. İlk olaraq, Mostbet Promo Kodu: Qeydli İşlər saytımızda qeyd edilmiş kodlar saytımızda ç oxvaş olan hər bir müştəri üçün ən verici faydalar sağlayır. Əgər siz yeni bir müştəriyinizdir və hesab yaradıb, Mostbet Promo Kodu: Qeydli İşlər saytımızdan istifadə edə bilərsiniz. İkkinci olaraq, bizim saytımızda qeyd edilmiş kodlar saytımızda ç oxvaş olan hər bir müştəri üçün ən verici faydalar sağlayır. Üçüncü olaraq, Mostbet Promo Kodu: Qeydli İşlər saytımızda qeyd edilmiş kodlar saytımızda ç oxvaş olan hər bir müştəri üçün ən verici faydalar sağlayır. Dördüncü olaraq, bizim saytımızda qeyd edilmiş kodlar saytımızda ç oxvaş olan hər bir müştəri üçün ən verici faydalar sağlayır. Bu kodlar saytımızda ç oxvaş olan hər bir müştəri üçün ən verici faydalar sağlayır. Son olaraq, Mostbet Promo Kodu: Qeydli İşlər saytımızda qeyd edilmiş kodlar saytımızda ç oxvaş olan hər bir müştəri üçün ən verici faydalar sağlayır.

Mostbet Promo Kodu: Ətraflı Məlumat Online Kazino Oynamaq Üçün

Mostbet Promo Kodu: Əməliyyatları Anladınızmı?

Mostbet Promo Kodu: Əməliyyatları Anladınızmı? Müştərilər üçün faydalı xidmətdir. Mostbet-də yeni hesab yaradanda ve/və ya mövcud hesabınızı yeniləyəndə kodunu istifadə edin. Bu, sizin hesabınız üçün bonus əməliyyatlarına çatşdıracaq. Ayrıca, bizim saytımızda reklamların təsdiq edilməsi üçün Mostbet Reklam Kodu istifadə edin. Əgər sizə sorunlar olursa, bizim 24/7 xidmətimiz sizinlə əlaqə saxlayacaq. Mostbet Promo Kodu: Əməliyyatları Anladınızmı? Biz sizin üçün çalışırıq!

Müştəri 1 : İlk defa Mostbet-ə qoşuldum və bu bir daha geri dönməyimə düşəndir! Proqramlar tək dizaynlandırılmış və mənə əsasən istədiyim müzik ilə oynamağa imkan verir. Ətraflı məlumat üçün kod verilməyib, lakin mən sizlərə Mostbet Promo Kodu üçün sitemize yönləndirirəm. Hər şey müvafaqiyətla çalışır və mən sizlərə tavsiə edirəm!

Müştəri 2 : Mostbet-də oynadığım zamanları keyif alırım, böyük məşğuliyət olmadan. Mənim işim yoxdur, bir neçə saat oynamaq istəyimsə, mən özündən keyif edirəm. Proqramlar tək dizaynlandırılmışdır, lakin bazıları daha çox animasiya içərsinlər. Ətraflı məlumat üçün Mostbet Promo Kodu sizin üçün.

Müştəri 3 : Mostbet-də oynadığım zamanları sevinirəm, fakat bazıları sizin üçün yeni proqramlar gelməyib. Mən hər şeyi seçə bilirim, lakin daha çox varianti istəyirdim. Mən sizin üçün Mostbet Promo Kodu keçidini izləyirəm.

Mostbet Promo Kodu: Ətraflı məlumat online kazino oynamaq üçün necə istifadə edilir?

Mostbet Promo Kodu: Bu kodun sizin üçün necə çalışdığını anlamak üçün nə edilməlidir?

Mostbet Promo Kodu: Siz online kazino oyunlarında faydalı olması üçün nə düzgün çalışmalıdır?

Mostbet Promo Kodu: Sizinlə bağlı olarak faydalı olması üçün neçə şey tapınmalıdır.

Mostbet Promo Kodu: Siz online kazino oynamaq istəyirsinizsə nə edilməlidir?

Design and Develop by Ovatheme